আনসিবল (Ansible)

Ansible Vault

Latest Technologies - আনসিবল (Ansible) - NCTB BOOK

Ansible Vault হলো একটি নিরাপত্তা ফিচার যা সংবেদনশীল ডেটা, যেমন পাসওয়ার্ড, API টোকেন, কনফিগারেশন সেটিংস বা অন্য কোন গোপনীয় তথ্য এনক্রিপ্ট এবং ডিক্রিপ্ট করতে ব্যবহৃত হয়। এটি মূলত প্লেবুক, ইনভেন্টরি, বা ভ্যারিয়েবলে সংরক্ষিত সংবেদনশীল ডেটা নিরাপদ রাখতে সহায়তা করে। Ansible Vault ব্যবহার করলে আপনি নিশ্চিত থাকতে পারেন যে আপনার সংবেদনশীল তথ্যগুলো শুধুমাত্র অথোরাইজড ব্যক্তি বা সিস্টেমই অ্যাক্সেস করতে পারবে।

কেন Ansible Vault ব্যবহার করবেন?

  • নিরাপত্তা: এটি আপনার সংবেদনশীল তথ্যগুলো এনক্রিপ্ট করে এবং অপ্রত্যাশিত অ্যাক্সেস থেকে রক্ষা করে।
  • সহজ ব্যবস্থাপনা: একবার এনক্রিপ্ট করা হলে, আপনি সহজেই Ansible প্লেবুকে সেই এনক্রিপ্টেড ডেটা ব্যবহার করতে পারেন।
  • রিস্ক রিডাকশন: ক্লিয়ার টেক্সটে সংবেদনশীল তথ্য রেখে অনলাইন রেপোজিটরিতে রাখার রিস্ক এড়াতে সাহায্য করে।

Ansible Vault ব্যবহার করে এনক্রিপ্ট এবং ডিক্রিপ্ট করা

Ansible Vault ব্যবহার করে একটি ফাইল এনক্রিপ্ট এবং ডিক্রিপ্ট করার জন্য নিচের কমান্ডগুলো ব্যবহার করা হয়।

১. Vault দিয়ে একটি নতুন ফাইল তৈরি করা

ansible-vault create secrets.yml
  • এটি একটি নতুন ফাইল secrets.yml তৈরি করবে এবং পাসওয়ার্ড চাইবে।
  • ফাইলটি খুললে আপনার সংবেদনশীল ডেটা যোগ করতে পারেন, যেমন:
db_password: my_secret_password
api_key: abc123xyz

২. Vault দিয়ে একটি ফাইল এনক্রিপ্ট করা

আপনার যদি আগে থেকে একটি ফাইল থাকে এবং আপনি সেটি এনক্রিপ্ট করতে চান, তাহলে:

ansible-vault encrypt existing_file.yml
  • এটি ফাইলটি এনক্রিপ্ট করবে এবং পাসওয়ার্ড চাইবে।

৩. Vault দিয়ে একটি ফাইল ডিক্রিপ্ট করা

ফাইলটি আবার সাধারণ টেক্সটে নিয়ে আসতে:

ansible-vault decrypt secrets.yml
  • এটি এনক্রিপ্টেড ফাইলটিকে ডিক্রিপ্ট করবে এবং আপনাকে পাসওয়ার্ড দিতে হবে।

৪. Vault দিয়ে একটি ফাইল সম্পাদনা করা

কোনো এনক্রিপ্টেড ফাইল সম্পাদনা করতে:

ansible-vault edit secrets.yml
  • এটি এনক্রিপ্টেড ফাইলটি খুলবে এবং পাসওয়ার্ড চাইবে। পাসওয়ার্ড প্রদান করার পর আপনি সাধারণ টেক্সটে ফাইলটি সম্পাদনা করতে পারবেন এবং সংরক্ষণ করার পর এটি আবার এনক্রিপ্ট হয়ে যাবে।

৫. Vault ফাইল দেখানো (View)

ফাইলের কনটেন্ট দেখতে হলে:

ansible-vault view secrets.yml
  • এটি ফাইলটি ডিক্রিপ্ট করে শুধু দেখাবে, কিন্তু ফাইলটি পরিবর্তন করবে না।

Ansible Playbook এ Vault ব্যবহার

Ansible প্লেবুকে Vault ব্যবহার করার জন্য আপনাকে --ask-vault-pass ফ্ল্যাগ ব্যবহার করতে হবে:

ansible-playbook playbook.yml --ask-vault-pass

এটি প্লেবুক রান করার সময় পাসওয়ার্ড চাইবে এবং সেই পাসওয়ার্ড ব্যবহার করে Vault ডেটা ডিক্রিপ্ট করে প্লেবুকে ব্যবহার করবে।

Vault পাসওয়ার্ড ফাইল ব্যবহার

প্রতি বার পাসওয়ার্ড টাইপ করা বিরক্তিকর হতে পারে। আপনি একটি পাসওয়ার্ড ফাইল ব্যবহার করতে পারেন:

  1. একটি ফাইল তৈরি করুন, যেমন vault_password.txt এবং তাতে আপনার পাসওয়ার্ড লিখুন।
  2. প্লেবুক চালানোর সময় এই ফাইলটি উল্লেখ করুন:
ansible-playbook playbook.yml --vault-password-file vault_password.txt

সতর্কতা: নিশ্চিত করুন যে পাসওয়ার্ড ফাইলটি সুরক্ষিত এবং এটি শুধুমাত্র অথোরাইজড ব্যক্তিরাই অ্যাক্সেস করতে পারে। সাধারণত, এটি .gitignore এ যোগ করা উচিত যাতে এটি গিট রেপোজিটরিতে সংরক্ষণ না হয়।

একাধিক Vault ফাইল এবং Vault ID

Ansible 2.4 থেকে Vault ID ফিচার যোগ করা হয়েছে, যা একাধিক পাসওয়ার্ড এবং Vault ফাইল ম্যানেজ করতে সহায়তা করে। এটি বড় প্রজেক্ট বা বড় টিমের ক্ষেত্রে অত্যন্ত উপকারী, কারণ আপনি বিভিন্ন Vault ID ব্যবহার করে বিভিন্ন পাসওয়ার্ড সেট করতে পারেন।

ansible-vault encrypt --vault-id dev@prompt secrets_dev.yml
ansible-vault encrypt --vault-id prod@prompt secrets_prod.yml

প্লেবুক রান করার সময়:

ansible-playbook playbook.yml --vault-id dev@prompt --vault-id prod@prompt

Ansible Vault এর ভালো প্র্যাকটিস

  • সংবেদনশীল ডেটা এনক্রিপ্ট করুন: পাসওয়ার্ড, টোকেন, এবং কনফিগারেশন ফাইলগুলো এনক্রিপ্ট করা উচিত।
  • পাসওয়ার্ড ফাইল সুরক্ষিত রাখুন: পাসওয়ার্ড ফাইলকে সর্বদা সুরক্ষিত এবং প্রাইভেট রাখুন।
  • .gitignore ব্যবহার করুন: Vault পাসওয়ার্ড ফাইল এবং এনক্রিপ্টেড ডেটা ফাইলের সংস্করণ নিয়ন্ত্রণ থেকে নিরাপদ রাখতে .gitignore ব্যবহার করুন।
  • Vault ID ব্যবহার করুন: বড় স্কেল প্রজেক্টে একাধিক পাসওয়ার্ড ম্যানেজ করার জন্য Vault ID ব্যবহার করুন।

সংক্ষেপে

Ansible Vault একটি শক্তিশালী ফিচার যা আপনাকে সংবেদনশীল ডেটা এনক্রিপ্ট করে সুরক্ষিত রাখতে এবং প্রয়োজন অনুসারে ব্যবহার করতে সাহায্য করে। এটি ব্যবহার করলে আপনার প্লেবুক ও কনফিগারেশন আরও সুরক্ষিত এবং পেশাদার হয়।

Ansible Vault কী এবং এর প্রয়োজনীয়তা

Ansible Vault হলো একটি টুল, যা সংবেদনশীল তথ্য (যেমন পাসওয়ার্ড, API কি, কনফিগারেশন ফাইল, SSH কী) এনক্রিপ্ট এবং সংরক্ষণ করতে ব্যবহৃত হয়। এটি প্লেবুক এবং কনফিগারেশন ফাইলে সংবেদনশীল ডাটা নিরাপদ রাখার একটি পদ্ধতি। Ansible Vault ব্যবহার করে আপনি এসব তথ্য এনক্রিপ্ট করে রাখতে পারেন এবং শুধুমাত্র অনুমোদিত ইউজাররাই সেগুলো ডিক্রিপ্ট করতে পারে।

Ansible Vault-এর প্রয়োজনীয়তা

Ansible Vault মূলত প্লেবুকে সংবেদনশীল তথ্য নিরাপদে সংরক্ষণ এবং ব্যবহার করার জন্য প্রয়োজন। নিচে Vault-এর প্রয়োজনীয়তা এবং সুবিধাগুলো ব্যাখ্যা করা হলো:

সংবেদনশীল তথ্য সুরক্ষা: প্লেবুকে সংবেদনশীল ডাটা যেমন পাসওয়ার্ড, টোকেন, API কি বা অন্যান্য কনফিগারেশন ডাটা সংরক্ষণ করতে হয়, যা সিকিউরিটির জন্য এনক্রিপ্ট করা প্রয়োজন। Vault এই তথ্যগুলো এনক্রিপ্ট করে, যাতে এগুলো অননুমোদিত অ্যাক্সেস থেকে সুরক্ষিত থাকে।

কোড এবং ডাটা সেপারেশন: অনেকে কোড এবং কনফিগারেশন ডাটা আলাদা রাখতে চায়, কিন্তু প্লেবুকের সাথে সংবেদনশীল তথ্য রাখতে হলে Vault ব্যবহার করে এনক্রিপ্ট করা যায়। এটি কোডবেস এবং কনফিগারেশনের মধ্যে নিরাপত্তা বজায় রাখে।

এনক্রিপ্টেড ফাইল: Ansible Vault ব্যবহার করে YAML ফাইলগুলো (যেমন ভ্যারিয়েবল ফাইল, হোস্ট ভ্যারিয়েবল ফাইল) এনক্রিপ্ট করা যায়। এটি নিশ্চিত করে যে সংবেদনশীল তথ্য কোডবেসে থাকলেও তা শুধুমাত্র অনুমোদিত ব্যবহারকারীরা দেখতে বা পরিবর্তন করতে পারবে।

সহজ ব্যবহার: Vault একটি সহজ কমান্ড-লাইন টুল যা Ansible-এর সাথে ইন্টিগ্রেট করা। এটি প্লেবুক বা ভ্যারিয়েবল ফাইলকে সরাসরি এনক্রিপ্ট এবং ডিক্রিপ্ট করতে সাহায্য করে, এবং প্লেবুক রান করার সময় পাসওয়ার্ড ব্যবহার করে ডাটা ডিক্রিপ্ট করা যায়।

Ansible Vault ব্যবহার করার উদাহরণ

১. নতুন Vault ফাইল তৈরি করা

Vault ব্যবহার করে একটি নতুন ফাইল তৈরি করতে নিচের কমান্ড ব্যবহার করা হয়:

ansible-vault create secrets.yml

এই কমান্ডটি একটি নতুন ফাইল তৈরি করবে এবং এটি এনক্রিপ্ট করার জন্য একটি পাসওয়ার্ড চাবে। পাসওয়ার্ড দিয়ে ফাইলটি এনক্রিপ্ট করা হবে এবং এরপর আপনি ফাইলের ভেতরে সংবেদনশীল ডাটা লিখতে পারবেন।

২. Vault ফাইল এডিট করা

ansible-vault edit secrets.yml

Vault এডিট করার জন্য এই কমান্ডটি ব্যবহার করা হয়। এটি এনক্রিপ্ট করা ফাইলটি ডিক্রিপ্ট করে এডিটর খুলে দেয়, যেখানে আপনি তথ্য পরিবর্তন করতে পারবেন। এডিট করা শেষ হলে ফাইলটি আবার এনক্রিপ্ট করা হয়।

৩. Vault ফাইল দেখার জন্য

ansible-vault view secrets.yml

এই কমান্ডটি ব্যবহার করে আপনি এনক্রিপ্ট করা ফাইলটি দেখতে পারবেন, কিন্তু কোনো পরিবর্তন করতে পারবেন না।

৪. Vault ফাইল ডিক্রিপ্ট করা

ansible-vault decrypt secrets.yml

এই কমান্ডটি একটি Vault ফাইলকে ডিক্রিপ্ট করে, যাতে এটি সাধারণ টেক্সট ফাইলে পরিণত হয়।

৫. Vault ফাইল পুনরায় এনক্রিপ্ট করা

ansible-vault encrypt secrets.yml

যদি আপনি একটি সাধারণ YAML ফাইল এনক্রিপ্ট করতে চান, তাহলে এই কমান্ডটি ব্যবহার করতে পারেন।

৬. প্লেবুক রান করার সময় Vault পাসওয়ার্ড প্রদান করা

ansible-playbook playbook.yml --ask-vault-pass

এই কমান্ডটি প্লেবুক রান করার সময় Vault পাসওয়ার্ড চায়, যাতে প্লেবুকের সাথে সংযুক্ত এনক্রিপ্টেড ফাইল ডিক্রিপ্ট করা যায়।

সংক্ষেপে

  • Ansible Vault হলো একটি টুল যা প্লেবুকে সংবেদনশীল ডাটা নিরাপদে সংরক্ষণ এবং ব্যবহারের জন্য ব্যবহৃত হয়।
  • এটি সংবেদনশীল তথ্য যেমন পাসওয়ার্ড, API কি, SSH কী ইত্যাদি এনক্রিপ্ট করে সুরক্ষিত রাখে।
  • Vault ব্যবহার করে আপনি এনক্রিপ্টেড ফাইল তৈরি, এডিট, ডিক্রিপ্ট, এবং প্লেবুক রান করার সময় পাসওয়ার্ড দিয়ে তথ্য সুরক্ষিত রাখতে পারেন।

Ansible Vault ব্যবহার করে প্লেবুকের নিরাপত্তা এবং ডাটা প্রাইভেসি বজায় রাখা যায়, যা বিশেষ করে বড় প্রজেক্ট এবং জটিল ইনফ্রাস্ট্রাকচারের ক্ষেত্রে অত্যন্ত গুরুত্বপূর্ণ।

গোপন তথ্য সংরক্ষণ করা (ansible-vault encrypt)

Ansible Vault হলো Ansible এর একটি বৈশিষ্ট্য যা আপনাকে গোপন তথ্য যেমন পাসওয়ার্ড, API কী, এবং অন্যান্য সংবেদনশীল তথ্য নিরাপদে সংরক্ষণ করতে দেয়। এখানে আমরা Ansible Vault এর মাধ্যমে গোপন তথ্য সংরক্ষণ করার পদ্ধতি আলোচনা করব।

Ansible Vault ব্যবহার করে গোপন তথ্য সংরক্ষণ করা

1. Ansible Vault ইনস্টল করা

প্রথমে নিশ্চিত করুন যে আপনার সিস্টেমে Ansible ইনস্টল করা আছে। আপনি নীচের কমান্ডটি ব্যবহার করে Ansible ইনস্টল করতে পারেন:

sudo apt-get install ansible

2. গোপন তথ্য তৈরি করা

এখন আপনি একটি নতুন ভল্ট ফাইল তৈরি করতে পারেন যেখানে আপনি গোপন তথ্য সংরক্ষণ করবেন। উদাহরণস্বরূপ, একটি YAML ফাইল তৈরি করুন:

ansible-vault create secrets.yml

এই কমান্ডটি একটি নতুন ফাইল তৈরি করবে এবং আপনাকে একটি পাসওয়ার্ড প্রদান করতে বলবে। এরপর, ফাইলটি খুলবে যেখানে আপনি আপনার গোপন তথ্য লিখতে পারেন।

# secrets.yml
db_password: mysecretpassword
api_key: myapikey

ফাইলটি সংরক্ষণ করে বন্ধ করুন।

3. গোপন তথ্য সম্পাদনা করা

যদি আপনি পূর্বে তৈরি করা ভল্ট ফাইল সম্পাদনা করতে চান, তাহলে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

ansible-vault edit secrets.yml

4. গোপন তথ্য দেখানো

যদি আপনি গোপন তথ্য দেখতে চান, তাহলে ব্যবহার করুন:

ansible-vault view secrets.yml

5. গোপন তথ্য ব্যবহার করা

আপনার গোপন তথ্যগুলো ব্যবহার করতে, আপনি এটি একটি Playbook এ অন্তর্ভুক্ত করতে পারেন:

- hosts: all
  tasks:
    - name: Print secret variables
      debug:
        msg: "Database password is {{ db_password }} and API key is {{ api_key }}"
      vars_files:
        - secrets.yml

6. Vault পাসওয়ার্ড ব্যবহার করা

আপনি যখন vault ফাইলগুলো রান করবেন, তখন আপনাকে পাসওয়ার্ড প্রদান করতে হবে। আপনি পাসওয়ার্ড ইনপুট করার জন্য একটি ফাইল ব্যবহার করতে পারেন:

ansible-playbook playbook.yml --vault-password-file ~/.vault_pass.txt

7. Ansible Vault এ এনক্রিপ্ট করা তথ্য সংরক্ষণ করা

আপনি একটি সাধারণ ফাইলকে এনক্রিপ্ট করতে পারেন:

ansible-vault encrypt filename.yml

8. এনক্রিপশন মুক্ত করা

এনক্রিপ্ট করা ফাইল থেকে এনক্রিপশন মুক্ত করতে:

ansible-vault decrypt filename.yml

উপসংহার

Ansible Vault আপনার গোপন তথ্যের নিরাপত্তা নিশ্চিত করতে সহায়ক। এই পদ্ধতিগুলি ব্যবহার করে আপনি আপনার সংবেদনশীল তথ্য নিরাপদে সংরক্ষণ করতে পারেন এবং প্রয়োজনে সেগুলি ব্যবহার করতে পারেন।

Vault ফাইল ডিক্রিপ্ট এবং ব্যবস্থাপনা

Ansible Vault ব্যবহার করে সংবেদনশীল তথ্য নিরাপদে সংরক্ষণ করা হয় এবং যখন প্রয়োজন হয় তখন তা ডিক্রিপ্ট করে ব্যবহৃত হয়। Vault ফাইল ডিক্রিপ্ট এবং ব্যবস্থাপনা একটি গুরুত্বপূর্ণ কাজ, যা নিরাপত্তা বজায় রাখতে সাহায্য করে। চলুন দেখি কিভাবে Vault ফাইল ডিক্রিপ্ট এবং পরিচালনা করা যায়।

১. Vault ফাইল ডিক্রিপ্ট করা

১.১. একটি Vault ফাইল ডিক্রিপ্ট করতে

একটি এনক্রিপ্ট করা Vault ফাইল ডিক্রিপ্ট করতে নিচের কমান্ড ব্যবহার করুন:

ansible-vault decrypt <vault_file>

উদাহরণ:

ansible-vault decrypt secrets.yml

এই কমান্ডটি ফাইলটিকে ডিক্রিপ্ট করবে এবং ক্লিয়ার টেক্সট হিসেবে ফাইলের কনটেন্ট দেখতে পারবেন। আপনি এটি সম্পাদনা করতে পারেন, এবং পরে আবার এনক্রিপ্ট করতে পারেন।

১.২. Vault পাসওয়ার্ড চাওয়া

যখন আপনি ফাইলটি ডিক্রিপ্ট করবেন, তখন আপনাকে Vault পাসওয়ার্ড প্রদান করতে হবে। এটি আপনি আপনার আগের সময় তৈরি করা পাসওয়ার্ডটি প্রদান করবেন।

২. Vault ফাইল সম্পাদনা করা

একটি এনক্রিপ্ট করা Vault ফাইল সম্পাদনা করতে নিচের কমান্ডটি ব্যবহার করুন:

ansible-vault edit <vault_file>

উদাহরণ:

ansible-vault edit secrets.yml

এই কমান্ডটি ফাইলটিকে ডিক্রিপ্ট করে একটি এডিটর খুলবে (যেমন vi বা nano) এবং আপনি সেখানে পরিবর্তন করতে পারবেন। সম্পন্ন করার পর এটি আবার এনক্রিপ্ট করে সংরক্ষণ করবে।

৩. Vault ফাইলের কনটেন্ট দেখা

একটি এনক্রিপ্ট করা Vault ফাইলের কনটেন্ট দেখতে নিচের কমান্ড ব্যবহার করুন:

ansible-vault view <vault_file>

উদাহরণ:

ansible-vault view secrets.yml

এই কমান্ডটি ফাইলটিকে ডিক্রিপ্ট করে শুধুমাত্র দেখাবে, কিন্তু এটি পরিবর্তন করবে না।

৪. Vault পাসওয়ার্ড ফাইল ব্যবহার করা

প্রতি বার পাসওয়ার্ড টাইপ করা বিরক্তিকর হতে পারে। আপনি একটি পাসওয়ার্ড ফাইল ব্যবহার করতে পারেন:

  1. একটি ফাইল তৈরি করুন, যেমন vault_password.txt, এবং তাতে আপনার পাসওয়ার্ড লিখুন।
  2. এই ফাইলটি ব্যবহার করে Vault ফাইল ডিক্রিপ্ট করতে:
ansible-vault decrypt <vault_file> --vault-password-file vault_password.txt

৫. একাধিক Vault ফাইল এবং Vault ID ব্যবস্থাপনা

যদি আপনার একাধিক Vault ফাইল থাকে এবং প্রতিটির জন্য ভিন্ন ভিন্ন পাসওয়ার্ড থাকে, তাহলে আপনি Vault ID ব্যবহার করতে পারেন।

৫.১. Vault ID তৈরি করা

ansible-vault encrypt --vault-id dev@prompt secrets_dev.yml
ansible-vault encrypt --vault-id prod@prompt secrets_prod.yml

৫.২. প্লেবুক রান করার সময় Vault ID ব্যবহার করা

ansible-playbook playbook.yml --vault-id dev@prompt --vault-id prod@prompt

৬. Vault ফাইল ম্যানেজমেন্টের ভালো প্র্যাকটিস

  • নিরাপত্তা নিশ্চিত করুন: Vault পাসওয়ার্ড এবং Vault ফাইলগুলি সুরক্ষিত রাখতে .gitignore ফাইলে অন্তর্ভুক্ত করুন।
  • পাসওয়ার্ড ফাইল সুরক্ষিত করুন: পাসওয়ার্ড ফাইলের পারমিশন পরিবর্তন করে অন্যদের অ্যাক্সেস সীমিত করুন। উদাহরণ:
chmod 600 vault_password.txt
  • প্রতি পরিবর্তনে এনক্রিপ্ট করুন: পরিবর্তন করার পর ফাইলটিকে আবার এনক্রিপ্ট করতে ভুলবেন না।

সংক্ষেপে

Ansible Vault ফাইল ডিক্রিপ্ট এবং ব্যবস্থাপনা নিরাপত্তার জন্য অত্যন্ত গুরুত্বপূর্ণ। উপরের কমান্ডগুলো ব্যবহার করে আপনি Vault ফাইল ডিক্রিপ্ট করতে, সম্পাদনা করতে, এবং নিরাপত্তা নিশ্চিত করতে পারবেন। Vault পাসওয়ার্ড ফাইল এবং Vault ID ব্যবহার করে আপনি এই প্রক্রিয়াগুলোকে আরও সহজ এবং কার্যকর করতে পারেন।

Promotion